The World Wide Web has expanded to provide web services faster to consumers. Web services may be provided by a web application which uses one or more services to handle a transaction. The applications may be distributed over several machines, making the topology of the machines that provides the service more difficult to track and monitor.
Monitoring a web application helps to provide insight regarding bottle necks in communication, communication failures and other information regarding performance of the services the provide the web application. When a web application is distributed over several machines, tracking the performance of the web service can become impractical with large amounts of data collected from each machine.
When a distributed web application is not operating as expected, additional information regarding application performance can be used to evaluate the health of the application. Collecting the additional information can consume large amounts of resources and often requires significant time to determine how to collect the information.
It very difficult to collect information for specific methods that perform poorly. To collect and store information for each and every method of a web application would take up too many resources and degrade performance of the application. As a result, by the time a web application is detected to be performing poorly, it is too late to collect data regarding the performance of the instance that is performing poorly, and only subsequent methods can be monitored.
There is a need in the art for web service monitoring which may accurately and efficiently monitor the performance of distributed applications which provide a web service.